--- 模块功能：MQTT客户端数据接收处理
-- @author openLuat
-- @module mqtt.mqttInMsg
-- @license MIT
-- @copyright openLuat
-- @release 2018.03.28

module(...,package.seeall)

--- MQTT客户端数据接收处理
-- @param mqttClient，MQTT客户端对象
-- @return 处理成功返回true，处理出错返回false
-- @usage mqttInMsg.proc(mqttClient)
function proc(mqttClient)
    local result,data
    while true do
        result,data = mqttClient:receive(2000)
        --接收到数据
        if result then
            log.info("mqttInMsg.proc",data.topic,data.payload)
                
            --TODO：根据需求自行处理data.payload
--        {"type":"parkStatus2","868575021931615L":1,"868575021931615R":1}
            --[[payload为接送类型数据，转换为table数据]]
            local returnData,result,errinfo = json.decode(data.payload)
            if result then
--                判断返回值类型
                local returnType = returnData.type
                if(returnType=="parkStatus2") then--[[返回有两个车位状态信息]]
                    for k,v in pairs(returnData) do
                        log.info("test",k)
                        if (string.find(k,"L")) then
                           if(v==1)then
                               pincfg.leftHavePay()
                           else
                               pincfg.leftHaveNoPay()
                           end

                        elseif(string.find(k,"R"))then
                            if(v==1)then
                                pincfg.rightHavePay()
                            else
                                pincfg.rightHaveNoPay()
                            end
                        end
                    end

                end

            else
                log.info("json.decode error",errinfo)
            end
            --如果mqttOutMsg中有等待发送的数据，则立即退出本循环
            if mqttOutMsg.waitForSend() then return true end
        else
            break
        end
    end
	
    return result or data=="timeout"
end
